package com.ruoyi.fitsculpt.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.ruoyi.common.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;

/**
 * 用户目标对象 easyfit_user_goals
 *
 * @author metaee
 * @date 2025-02-27
 */
@ApiModel("用户目标对象")
public class EasyfitUserGoals extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 目标ID
     */
    @ApiModelProperty("目标ID")
    @Excel(name = "目标ID")
    private Long goalId;

    /**
     * 用户ID
     */
    @ApiModelProperty("用户ID")
    @Excel(name = "用户ID")
    private Long userId;

    /**
     * 1:减脂 2:增肌 3:塑形
     */
    @ApiModelProperty("1:减脂 2:增肌 3:塑形")
    @Excel(name = "1:减脂 2:增肌 3:塑形")
    private Long goalType;

    /**
     * 目标体重(kg)
     */
    @ApiModelProperty("目标体重(kg)")
    @Excel(name = "目标体重(kg)")
    private BigDecimal targetWeight;

    /**
     * 开始日期
     */
    @ApiModelProperty("开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /**
     * 结束日期
     */
    @ApiModelProperty("结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /**
     * 1:进行中 2:已完成 3:已放弃
     */
    @ApiModelProperty("1:进行中 2:已完成 3:已放弃")
    @Excel(name = "1:进行中 2:已完成 3:已放弃")
    private Long status;

    /** 关联的用户信息 */
    @TableField(exist = false)
    private EasyfitUsers user;

    public Long getGoalId() {
        return goalId;
    }

    public void setGoalId(Long goalId) {
        this.goalId = goalId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getGoalType() {
        return goalType;
    }

    public void setGoalType(Long goalType) {
        this.goalType = goalType;
    }

    public BigDecimal getTargetWeight() {
        return targetWeight;
    }

    public void setTargetWeight(BigDecimal targetWeight) {
        this.targetWeight = targetWeight;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Long getStatus() {
        return status;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    /**
     * 获取关联的用户信息
     */
    public EasyfitUsers getUser() {
        return user;
    }

    /**
     * 设置关联的用户信息
     */
    public void setUser(EasyfitUsers user) {
        this.user = user;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("goalId", getGoalId())
                .append("userId", getUserId())
                .append("goalType", getGoalType())
                .append("targetWeight", getTargetWeight())
                .append("startDate", getStartDate())
                .append("endDate", getEndDate())
                .append("status", getStatus())
                .append("user", getUser())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
